[INFO] fetching crate base-coroutine 0.2.0...
[INFO] testing base-coroutine-0.2.0 against try#28f95933dc0727396c07b48d0a8cb5211b7fb472 for pr-154065-2
[INFO] extracting crate base-coroutine 0.2.0 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate base-coroutine 0.2.0
[INFO] finished tweaking crates.io crate base-coroutine 0.2.0
[INFO] tweaked toml for crates.io crate base-coroutine 0.2.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate base-coroutine 0.2.0 on toolchain 28f95933dc0727396c07b48d0a8cb5211b7fb472
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 66 packages to latest compatible versions
[INFO] [stderr]       Adding object-collection v0.0.4 (available: v0.0.5)
[INFO] [stderr]       Adding timer-utils v0.0.3 (available: v0.0.4)
[INFO] [stderr]       Adding windows-sys v0.42.0 (available: v0.61.2)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: version requirement `0.5.2+5.3.0-patched` for dependency `jemalloc-sys` includes semver metadata which will be ignored, removing the metadata is recommended to avoid confusion
[INFO] [stderr] warning: `base-coroutine` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2d047807552412934513a27e286333efd334046981f8e0a806e3acc8a93009b1
[INFO] running `Command { std: "docker" "start" "-a" "2d047807552412934513a27e286333efd334046981f8e0a806e3acc8a93009b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2d047807552412934513a27e286333efd334046981f8e0a806e3acc8a93009b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2d047807552412934513a27e286333efd334046981f8e0a806e3acc8a93009b1", kill_on_drop: false }`
[INFO] [stdout] 2d047807552412934513a27e286333efd334046981f8e0a806e3acc8a93009b1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b1f3f85e25d590c78d2373ffedee95075d16b263b5f36da5189f4303998625f9
[INFO] running `Command { std: "docker" "start" "-a" "b1f3f85e25d590c78d2373ffedee95075d16b263b5f36da5189f4303998625f9", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: version requirement `0.5.2+5.3.0-patched` for dependency `jemalloc-sys` includes semver metadata which will be ignored, removing the metadata is recommended to avoid confusion
[INFO] [stderr] warning: `base-coroutine` (manifest) generated 1 warning
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling object-collection v0.0.3
[INFO] [stderr]    Compiling st3 v0.4.1
[INFO] [stderr]    Compiling jemalloc-sys v0.5.4+5.3.0-patched
[INFO] [stderr]    Compiling base-coroutine v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling object-collection v0.0.4
[INFO] [stderr]    Compiling timer-utils v0.0.3
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |             COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |             SCHEDULER_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  8 - static mut SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  8 + static SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let val = COROUTINE_ID.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:30:23
[INFO] [stdout]    |
[INFO] [stdout] 30 |             let val = SCHEDULER_ID.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  8 - static mut SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  8 + static SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |                 COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `CoroutineResult<Yield, Return>`, which is not FFI-safe
[INFO] [stdout]    --> src/coroutine.rs:163:29
[INFO] [stdout]     |
[INFO] [stdout] 163 |     marker: PhantomData<&'a extern "C" fn(Param) -> CoroutineResult<Yield, Return>>,
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]`, `#[repr(transparent)]`, or integer `#[repr(...)]` attribute to this enum
[INFO] [stdout]     = note: enum has no representation hint
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]    --> src/coroutine.rs:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub enum CoroutineResult<Yield, Return> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(improper_ctypes_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 |     unsafe { INSTANCE.local_queue() }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 11 - static mut INSTANCE: Lazy<Queue> = Lazy::new(Queue::default);
[INFO] [stdout] 11 + static INSTANCE: Lazy<Queue> = Lazy::new(Queue::default);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             LOCAL_QUEUES.get_or_init(|| {
[INFO] [stdout] 34 | |                 (0..local_queues)
[INFO] [stdout] 35 | |                     .map(|_| WorkStealQueue::new(local_capacity))
[INFO] [stdout] 36 | |                     .collect()
[INFO] [stdout] 37 | |             });
[INFO] [stdout]    | |______________^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout] 22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 |         unsafe { GLOBAL_QUEUE.push(ptr).unwrap() }
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout] 19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 | /             LOCAL_QUEUES
[INFO] [stdout] 62 | |                 .get_mut()
[INFO] [stdout]    | |__________________________^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout] 22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:132:29
[INFO] [stdout]     |
[INFO] [stdout] 132 |                     let _ = GLOBAL_QUEUE.push(half.pop().unwrap());
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 GLOBAL_QUEUE.push(item).map_err(|e| match e {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:183:46
[INFO] [stdout]     |
[INFO] [stdout] 183 |                     if let Ok(popped_item) = GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:190:36
[INFO] [stdout]     |
[INFO] [stdout] 190 |                 let local_queues = LOCAL_QUEUES.get_mut().unwrap();
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:214:19
[INFO] [stdout]     |
[INFO] [stdout] 214 |             match GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:248:13
[INFO] [stdout]     |
[INFO] [stdout] 248 | /             GLOBAL_LOCK
[INFO] [stdout] 249 | |                 .compare_exchange(false, true, Ordering::Relaxed, Ordering::Relaxed)
[INFO] [stdout]     | |____________________________________________________________________________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  17 - static mut GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]  17 + static GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:258:23
[INFO] [stdout]     |
[INFO] [stdout] 258 |                 match GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:263:13
[INFO] [stdout]     |
[INFO] [stdout] 263 |             GLOBAL_LOCK.store(false, Ordering::Relaxed);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  17 - static mut GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]  17 + static GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/scheduler.rs:98:26
[INFO] [stdout]    |
[INFO] [stdout] 98 |             || unsafe { !SUSPEND_TABLE.is_empty() || !SYSTEM_CALL_TABLE.is_empty() }
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout] 24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/scheduler.rs:98:55
[INFO] [stdout]    |
[INFO] [stdout] 98 |             || unsafe { !SUSPEND_TABLE.is_empty() || !SYSTEM_CALL_TABLE.is_empty() }
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout] 22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:169:33
[INFO] [stdout]     |
[INFO] [stdout] 169 | / ...                   SUSPEND_TABLE.insert_raw(
[INFO] [stdout] 170 | | ...                       timer_utils::add_timeout_time(delay_time),
[INFO] [stdout] 171 | | ...                       coroutine as *mut _ as *mut c_void,
[INFO] [stdout] 172 | | ...                   );
[INFO] [stdout]     | |_______________________^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:183:34
[INFO] [stdout]     |
[INFO] [stdout] 183 |                         unsafe { SYSTEM_CALL_TABLE.insert(coroutine.get_id(), coroutine) };
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]  22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:201:25
[INFO] [stdout]     |
[INFO] [stdout] 201 |             for _ in 0..SUSPEND_TABLE.len() {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:202:38
[INFO] [stdout]     |
[INFO] [stdout] 202 |                 if let Some(entry) = SUSPEND_TABLE.front() {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:208:46
[INFO] [stdout]     |
[INFO] [stdout] 208 |                     if let Some(mut entry) = SUSPEND_TABLE.pop_front() {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:238:27
[INFO] [stdout]     |
[INFO] [stdout] 238 |         if let Some(co) = SYSTEM_CALL_TABLE.remove(&co_id) {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]  22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> src/monitor.rs:41:47
[INFO] [stdout]    |
[INFO] [stdout] 41 |             act.sa_sigaction = sigurg_handler as libc::sighandler_t;
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 41 |             act.sa_sigaction = sigurg_handler as *const () as libc::sighandler_t;
[INFO] [stdout]    |                                               ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/monitor.rs:64:18
[INFO] [stdout]    |
[INFO] [stdout] 64 |         unsafe { &mut GLOBAL }
[INFO] [stdout]    |                  ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 64 |         unsafe { &raw mut GLOBAL }
[INFO] [stdout]    |                   +++
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 11 - static mut GLOBAL: Lazy<Monitor> = Lazy::new(Monitor::new);
[INFO] [stdout] 11 + static GLOBAL: Lazy<Monitor> = Lazy::new(Monitor::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:133:41
[INFO] [stdout]     |
[INFO] [stdout] 133 |             if let Some(local_queues) = LOCAL_QUEUES.get_mut() {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:22:19
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:137:21
[INFO] [stdout]     |
[INFO] [stdout] 137 |                 if !GLOBAL_QUEUE.is_empty() {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:19:19
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:166:41
[INFO] [stdout]     |
[INFO] [stdout] 166 |                         let idle_less = LOCAL_QUEUES.get_mut().unwrap().get_mut(min.1).unwrap();
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:22:19
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:111:25
[INFO] [stdout]     |
[INFO] [stdout] 111 |             let index = INDEX.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  85 - static mut INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]  85 + static INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 INDEX.store(1, Ordering::SeqCst);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  85 - static mut INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]  85 + static INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |             EVENT_LOOPS.get_mut(index % num_cpus::get()).unwrap()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  87 - static mut EVENT_LOOPS: Lazy<Box<[EventLoop]>> = Lazy::new(|| {
[INFO] [stdout]  87 + static EVENT_LOOPS: Lazy<Box<[EventLoop]>> = Lazy::new(|| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |             READABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |             READABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |             WRITABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:169:13
[INFO] [stdout]     |
[INFO] [stdout] 169 |             WRITABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:182:16
[INFO] [stdout]     |
[INFO] [stdout] 182 |             if READABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:183:20
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 if WRITABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:187:25
[INFO] [stdout]     |
[INFO] [stdout] 187 |                         WRITABLE_TOKEN_RECORDS.remove(&fd).unwrap_or(0),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:190:21
[INFO] [stdout]     |
[INFO] [stdout] 190 |                     READABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:207:16
[INFO] [stdout]     |
[INFO] [stdout] 207 |             if WRITABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:208:20
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 if READABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:212:25
[INFO] [stdout]     |
[INFO] [stdout] 212 |                         READABLE_TOKEN_RECORDS.remove(&fd).unwrap_or(0),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:215:21
[INFO] [stdout]     |
[INFO] [stdout] 215 |                     WRITABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |             READABLE_RECORDS.insert(fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:237:13
[INFO] [stdout]     |
[INFO] [stdout] 237 |             READABLE_TOKEN_RECORDS.insert(fd, token);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:246:13
[INFO] [stdout]     |
[INFO] [stdout] 246 |             WRITABLE_RECORDS.insert(fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |             WRITABLE_TOKEN_RECORDS.insert(fd, token);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:263:21
[INFO] [stdout]     |
[INFO] [stdout] 263 |                     READABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:266:21
[INFO] [stdout]     |
[INFO] [stdout] 266 |                     WRITABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 35s
[INFO] running `Command { std: "docker" "inspect" "b1f3f85e25d590c78d2373ffedee95075d16b263b5f36da5189f4303998625f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b1f3f85e25d590c78d2373ffedee95075d16b263b5f36da5189f4303998625f9", kill_on_drop: false }`
[INFO] [stdout] b1f3f85e25d590c78d2373ffedee95075d16b263b5f36da5189f4303998625f9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bfb4e3d5b9a909cec6701aa07168f866e623f460f74bfd51d38b2855aaa355fa
[INFO] running `Command { std: "docker" "start" "-a" "bfb4e3d5b9a909cec6701aa07168f866e623f460f74bfd51d38b2855aaa355fa", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: version requirement `0.5.2+5.3.0-patched` for dependency `jemalloc-sys` includes semver metadata which will be ignored, removing the metadata is recommended to avoid confusion
[INFO] [stderr] warning: `base-coroutine` (manifest) generated 1 warning
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |             COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |             SCHEDULER_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  8 - static mut SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  8 + static SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let val = COROUTINE_ID.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:30:23
[INFO] [stdout]    |
[INFO] [stdout] 30 |             let val = SCHEDULER_ID.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  8 - static mut SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  8 + static SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |                 COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `CoroutineResult<Yield, Return>`, which is not FFI-safe
[INFO] [stdout]    --> src/coroutine.rs:163:29
[INFO] [stdout]     |
[INFO] [stdout] 163 |     marker: PhantomData<&'a extern "C" fn(Param) -> CoroutineResult<Yield, Return>>,
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]`, `#[repr(transparent)]`, or integer `#[repr(...)]` attribute to this enum
[INFO] [stdout]     = note: enum has no representation hint
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]    --> src/coroutine.rs:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub enum CoroutineResult<Yield, Return> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(improper_ctypes_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 |     unsafe { INSTANCE.local_queue() }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 11 - static mut INSTANCE: Lazy<Queue> = Lazy::new(Queue::default);
[INFO] [stdout] 11 + static INSTANCE: Lazy<Queue> = Lazy::new(Queue::default);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             LOCAL_QUEUES.get_or_init(|| {
[INFO] [stdout] 34 | |                 (0..local_queues)
[INFO] [stdout] 35 | |                     .map(|_| WorkStealQueue::new(local_capacity))
[INFO] [stdout] 36 | |                     .collect()
[INFO] [stdout] 37 | |             });
[INFO] [stdout]    | |______________^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout] 22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 |         unsafe { GLOBAL_QUEUE.push(ptr).unwrap() }
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout] 19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 | /             LOCAL_QUEUES
[INFO] [stdout] 62 | |                 .get_mut()
[INFO] [stdout]    | |__________________________^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout] 22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:132:29
[INFO] [stdout]     |
[INFO] [stdout] 132 |                     let _ = GLOBAL_QUEUE.push(half.pop().unwrap());
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 GLOBAL_QUEUE.push(item).map_err(|e| match e {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:183:46
[INFO] [stdout]     |
[INFO] [stdout] 183 |                     if let Ok(popped_item) = GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:190:36
[INFO] [stdout]     |
[INFO] [stdout] 190 |                 let local_queues = LOCAL_QUEUES.get_mut().unwrap();
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:214:19
[INFO] [stdout]     |
[INFO] [stdout] 214 |             match GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:248:13
[INFO] [stdout]     |
[INFO] [stdout] 248 | /             GLOBAL_LOCK
[INFO] [stdout] 249 | |                 .compare_exchange(false, true, Ordering::Relaxed, Ordering::Relaxed)
[INFO] [stdout]     | |____________________________________________________________________________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  17 - static mut GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]  17 + static GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:258:23
[INFO] [stdout]     |
[INFO] [stdout] 258 |                 match GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:263:13
[INFO] [stdout]     |
[INFO] [stdout] 263 |             GLOBAL_LOCK.store(false, Ordering::Relaxed);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  17 - static mut GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]  17 + static GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/scheduler.rs:98:26
[INFO] [stdout]    |
[INFO] [stdout] 98 |             || unsafe { !SUSPEND_TABLE.is_empty() || !SYSTEM_CALL_TABLE.is_empty() }
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout] 24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/scheduler.rs:98:55
[INFO] [stdout]    |
[INFO] [stdout] 98 |             || unsafe { !SUSPEND_TABLE.is_empty() || !SYSTEM_CALL_TABLE.is_empty() }
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout] 22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:169:33
[INFO] [stdout]     |
[INFO] [stdout] 169 | / ...                   SUSPEND_TABLE.insert_raw(
[INFO] [stdout] 170 | | ...                       timer_utils::add_timeout_time(delay_time),
[INFO] [stdout] 171 | | ...                       coroutine as *mut _ as *mut c_void,
[INFO] [stdout] 172 | | ...                   );
[INFO] [stdout]     | |_______________________^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:183:34
[INFO] [stdout]     |
[INFO] [stdout] 183 |                         unsafe { SYSTEM_CALL_TABLE.insert(coroutine.get_id(), coroutine) };
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]  22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:201:25
[INFO] [stdout]     |
[INFO] [stdout] 201 |             for _ in 0..SUSPEND_TABLE.len() {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:202:38
[INFO] [stdout]     |
[INFO] [stdout] 202 |                 if let Some(entry) = SUSPEND_TABLE.front() {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:208:46
[INFO] [stdout]     |
[INFO] [stdout] 208 |                     if let Some(mut entry) = SUSPEND_TABLE.pop_front() {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:238:27
[INFO] [stdout]     |
[INFO] [stdout] 238 |         if let Some(co) = SYSTEM_CALL_TABLE.remove(&co_id) {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]  22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> src/monitor.rs:41:47
[INFO] [stdout]    |
[INFO] [stdout] 41 |             act.sa_sigaction = sigurg_handler as libc::sighandler_t;
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 41 |             act.sa_sigaction = sigurg_handler as *const () as libc::sighandler_t;
[INFO] [stdout]    |                                               ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/monitor.rs:64:18
[INFO] [stdout]    |
[INFO] [stdout] 64 |         unsafe { &mut GLOBAL }
[INFO] [stdout]    |                  ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 64 |         unsafe { &raw mut GLOBAL }
[INFO] [stdout]    |                   +++
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 11 - static mut GLOBAL: Lazy<Monitor> = Lazy::new(Monitor::new);
[INFO] [stdout] 11 + static GLOBAL: Lazy<Monitor> = Lazy::new(Monitor::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:133:41
[INFO] [stdout]     |
[INFO] [stdout] 133 |             if let Some(local_queues) = LOCAL_QUEUES.get_mut() {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:22:19
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:137:21
[INFO] [stdout]     |
[INFO] [stdout] 137 |                 if !GLOBAL_QUEUE.is_empty() {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:19:19
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:166:41
[INFO] [stdout]     |
[INFO] [stdout] 166 |                         let idle_less = LOCAL_QUEUES.get_mut().unwrap().get_mut(min.1).unwrap();
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:22:19
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:111:25
[INFO] [stdout]     |
[INFO] [stdout] 111 |             let index = INDEX.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  85 - static mut INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]  85 + static INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 INDEX.store(1, Ordering::SeqCst);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  85 - static mut INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]  85 + static INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |             EVENT_LOOPS.get_mut(index % num_cpus::get()).unwrap()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  87 - static mut EVENT_LOOPS: Lazy<Box<[EventLoop]>> = Lazy::new(|| {
[INFO] [stdout]  87 + static EVENT_LOOPS: Lazy<Box<[EventLoop]>> = Lazy::new(|| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |             READABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |             READABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |             WRITABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:169:13
[INFO] [stdout]     |
[INFO] [stdout] 169 |             WRITABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:182:16
[INFO] [stdout]     |
[INFO] [stdout] 182 |             if READABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:183:20
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 if WRITABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:187:25
[INFO] [stdout]     |
[INFO] [stdout] 187 |                         WRITABLE_TOKEN_RECORDS.remove(&fd).unwrap_or(0),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:190:21
[INFO] [stdout]     |
[INFO] [stdout] 190 |                     READABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:207:16
[INFO] [stdout]     |
[INFO] [stdout] 207 |             if WRITABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:208:20
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 if READABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:212:25
[INFO] [stdout]     |
[INFO] [stdout] 212 |                         READABLE_TOKEN_RECORDS.remove(&fd).unwrap_or(0),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:215:21
[INFO] [stdout]     |
[INFO] [stdout] 215 |                     WRITABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |             READABLE_RECORDS.insert(fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:237:13
[INFO] [stdout]     |
[INFO] [stdout] 237 |             READABLE_TOKEN_RECORDS.insert(fd, token);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:246:13
[INFO] [stdout]     |
[INFO] [stdout] 246 |             WRITABLE_RECORDS.insert(fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |             WRITABLE_TOKEN_RECORDS.insert(fd, token);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:263:21
[INFO] [stdout]     |
[INFO] [stdout] 263 |                     READABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:266:21
[INFO] [stdout]     |
[INFO] [stdout] 266 |                     WRITABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling base-coroutine v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |             COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |             SCHEDULER_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  8 - static mut SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  8 + static SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let val = COROUTINE_ID.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:30:23
[INFO] [stdout]    |
[INFO] [stdout] 30 |             let val = SCHEDULER_ID.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  8 - static mut SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  8 + static SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |                 COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `CoroutineResult<Yield, Return>`, which is not FFI-safe
[INFO] [stdout]    --> src/coroutine.rs:163:29
[INFO] [stdout]     |
[INFO] [stdout] 163 |     marker: PhantomData<&'a extern "C" fn(Param) -> CoroutineResult<Yield, Return>>,
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]`, `#[repr(transparent)]`, or integer `#[repr(...)]` attribute to this enum
[INFO] [stdout]     = note: enum has no representation hint
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]    --> src/coroutine.rs:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub enum CoroutineResult<Yield, Return> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(improper_ctypes_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 |     unsafe { INSTANCE.local_queue() }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 11 - static mut INSTANCE: Lazy<Queue> = Lazy::new(Queue::default);
[INFO] [stdout] 11 + static INSTANCE: Lazy<Queue> = Lazy::new(Queue::default);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             LOCAL_QUEUES.get_or_init(|| {
[INFO] [stdout] 34 | |                 (0..local_queues)
[INFO] [stdout] 35 | |                     .map(|_| WorkStealQueue::new(local_capacity))
[INFO] [stdout] 36 | |                     .collect()
[INFO] [stdout] 37 | |             });
[INFO] [stdout]    | |______________^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout] 22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 |         unsafe { GLOBAL_QUEUE.push(ptr).unwrap() }
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout] 19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 | /             LOCAL_QUEUES
[INFO] [stdout] 62 | |                 .get_mut()
[INFO] [stdout]    | |__________________________^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout] 22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:132:29
[INFO] [stdout]     |
[INFO] [stdout] 132 |                     let _ = GLOBAL_QUEUE.push(half.pop().unwrap());
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 GLOBAL_QUEUE.push(item).map_err(|e| match e {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:183:46
[INFO] [stdout]     |
[INFO] [stdout] 183 |                     if let Ok(popped_item) = GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:190:36
[INFO] [stdout]     |
[INFO] [stdout] 190 |                 let local_queues = LOCAL_QUEUES.get_mut().unwrap();
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:214:19
[INFO] [stdout]     |
[INFO] [stdout] 214 |             match GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:248:13
[INFO] [stdout]     |
[INFO] [stdout] 248 | /             GLOBAL_LOCK
[INFO] [stdout] 249 | |                 .compare_exchange(false, true, Ordering::Relaxed, Ordering::Relaxed)
[INFO] [stdout]     | |____________________________________________________________________________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  17 - static mut GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]  17 + static GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:258:23
[INFO] [stdout]     |
[INFO] [stdout] 258 |                 match GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:263:13
[INFO] [stdout]     |
[INFO] [stdout] 263 |             GLOBAL_LOCK.store(false, Ordering::Relaxed);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  17 - static mut GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]  17 + static GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/scheduler.rs:98:26
[INFO] [stdout]    |
[INFO] [stdout] 98 |             || unsafe { !SUSPEND_TABLE.is_empty() || !SYSTEM_CALL_TABLE.is_empty() }
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout] 24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/scheduler.rs:98:55
[INFO] [stdout]    |
[INFO] [stdout] 98 |             || unsafe { !SUSPEND_TABLE.is_empty() || !SYSTEM_CALL_TABLE.is_empty() }
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout] 22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:169:33
[INFO] [stdout]     |
[INFO] [stdout] 169 | / ...                   SUSPEND_TABLE.insert_raw(
[INFO] [stdout] 170 | | ...                       timer_utils::add_timeout_time(delay_time),
[INFO] [stdout] 171 | | ...                       coroutine as *mut _ as *mut c_void,
[INFO] [stdout] 172 | | ...                   );
[INFO] [stdout]     | |_______________________^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:183:34
[INFO] [stdout]     |
[INFO] [stdout] 183 |                         unsafe { SYSTEM_CALL_TABLE.insert(coroutine.get_id(), coroutine) };
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]  22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:201:25
[INFO] [stdout]     |
[INFO] [stdout] 201 |             for _ in 0..SUSPEND_TABLE.len() {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:202:38
[INFO] [stdout]     |
[INFO] [stdout] 202 |                 if let Some(entry) = SUSPEND_TABLE.front() {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:208:46
[INFO] [stdout]     |
[INFO] [stdout] 208 |                     if let Some(mut entry) = SUSPEND_TABLE.pop_front() {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:238:27
[INFO] [stdout]     |
[INFO] [stdout] 238 |         if let Some(co) = SYSTEM_CALL_TABLE.remove(&co_id) {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]  22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: transmuting an integer to a pointer creates a pointer without provenance
[INFO] [stdout]    --> src/scheduler.rs:260:18
[INFO] [stdout]     |
[INFO] [stdout] 260 |         unsafe { std::mem::transmute(10usize) }
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is dangerous because dereferencing the resulting pointer is undefined behavior
[INFO] [stdout]     = note: exposed provenance semantics can be used to create a pointer based on some previously exposed provenance
[INFO] [stdout]     = help: if you truly mean to create a pointer without provenance, use `std::ptr::without_provenance_mut`
[INFO] [stdout]     = help: for more information about transmute, see <https://doc.rust-lang.org/std/mem/fn.transmute.html#transmutation-between-pointers-and-integers>
[INFO] [stdout]     = help: for more information about exposed provenance, see <https://doc.rust-lang.org/std/ptr/index.html#exposed-provenance>
[INFO] [stdout]     = note: `#[warn(integer_to_ptr_transmutes)]` on by default
[INFO] [stdout] help: use `std::ptr::with_exposed_provenance_mut` instead to use a previously exposed provenance
[INFO] [stdout]     |
[INFO] [stdout] 260 -         unsafe { std::mem::transmute(10usize) }
[INFO] [stdout] 260 +         unsafe { &mut *std::ptr::with_exposed_provenance_mut::<c_void>(10usize) }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> src/monitor.rs:41:47
[INFO] [stdout]    |
[INFO] [stdout] 41 |             act.sa_sigaction = sigurg_handler as libc::sighandler_t;
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 41 |             act.sa_sigaction = sigurg_handler as *const () as libc::sighandler_t;
[INFO] [stdout]    |                                               ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/monitor.rs:64:18
[INFO] [stdout]    |
[INFO] [stdout] 64 |         unsafe { &mut GLOBAL }
[INFO] [stdout]    |                  ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 64 |         unsafe { &raw mut GLOBAL }
[INFO] [stdout]    |                   +++
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 11 - static mut GLOBAL: Lazy<Monitor> = Lazy::new(Monitor::new);
[INFO] [stdout] 11 + static GLOBAL: Lazy<Monitor> = Lazy::new(Monitor::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:133:41
[INFO] [stdout]     |
[INFO] [stdout] 133 |             if let Some(local_queues) = LOCAL_QUEUES.get_mut() {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:22:19
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:137:21
[INFO] [stdout]     |
[INFO] [stdout] 137 |                 if !GLOBAL_QUEUE.is_empty() {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:19:19
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:166:41
[INFO] [stdout]     |
[INFO] [stdout] 166 |                         let idle_less = LOCAL_QUEUES.get_mut().unwrap().get_mut(min.1).unwrap();
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:22:19
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/monitor.rs:198:41
[INFO] [stdout]     |
[INFO] [stdout] 198 |         register_handler(sigurg_handler as libc::sighandler_t);
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 198 |         register_handler(sigurg_handler as *const () as libc::sighandler_t);
[INFO] [stdout]     |                                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/monitor.rs:210:41
[INFO] [stdout]     |
[INFO] [stdout] 210 |         register_handler(sigurg_handler as libc::sighandler_t);
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 210 |         register_handler(sigurg_handler as *const () as libc::sighandler_t);
[INFO] [stdout]     |                                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/monitor.rs:220:41
[INFO] [stdout]     |
[INFO] [stdout] 220 |         register_handler(sigurg_handler as libc::sighandler_t);
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 220 |         register_handler(sigurg_handler as *const () as libc::sighandler_t);
[INFO] [stdout]     |                                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:111:25
[INFO] [stdout]     |
[INFO] [stdout] 111 |             let index = INDEX.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  85 - static mut INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]  85 + static INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 INDEX.store(1, Ordering::SeqCst);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  85 - static mut INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]  85 + static INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |             EVENT_LOOPS.get_mut(index % num_cpus::get()).unwrap()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  87 - static mut EVENT_LOOPS: Lazy<Box<[EventLoop]>> = Lazy::new(|| {
[INFO] [stdout]  87 + static EVENT_LOOPS: Lazy<Box<[EventLoop]>> = Lazy::new(|| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |             READABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |             READABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |             WRITABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:169:13
[INFO] [stdout]     |
[INFO] [stdout] 169 |             WRITABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:182:16
[INFO] [stdout]     |
[INFO] [stdout] 182 |             if READABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:183:20
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 if WRITABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:187:25
[INFO] [stdout]     |
[INFO] [stdout] 187 |                         WRITABLE_TOKEN_RECORDS.remove(&fd).unwrap_or(0),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:190:21
[INFO] [stdout]     |
[INFO] [stdout] 190 |                     READABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:207:16
[INFO] [stdout]     |
[INFO] [stdout] 207 |             if WRITABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:208:20
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 if READABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:212:25
[INFO] [stdout]     |
[INFO] [stdout] 212 |                         READABLE_TOKEN_RECORDS.remove(&fd).unwrap_or(0),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:215:21
[INFO] [stdout]     |
[INFO] [stdout] 215 |                     WRITABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |             READABLE_RECORDS.insert(fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:237:13
[INFO] [stdout]     |
[INFO] [stdout] 237 |             READABLE_TOKEN_RECORDS.insert(fd, token);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:246:13
[INFO] [stdout]     |
[INFO] [stdout] 246 |             WRITABLE_RECORDS.insert(fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |             WRITABLE_TOKEN_RECORDS.insert(fd, token);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:263:21
[INFO] [stdout]     |
[INFO] [stdout] 263 |                     READABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:266:21
[INFO] [stdout]     |
[INFO] [stdout] 266 |                     WRITABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: transmuting an integer to a pointer creates a pointer without provenance
[INFO] [stdout]    --> src/event_loop/mod.rs:298:18
[INFO] [stdout]     |
[INFO] [stdout] 298 |         unsafe { std::mem::transmute(val) }
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is dangerous because dereferencing the resulting pointer is undefined behavior
[INFO] [stdout]     = note: exposed provenance semantics can be used to create a pointer based on some previously exposed provenance
[INFO] [stdout]     = help: if you truly mean to create a pointer without provenance, use `std::ptr::without_provenance_mut`
[INFO] [stdout]     = help: for more information about transmute, see <https://doc.rust-lang.org/std/mem/fn.transmute.html#transmutation-between-pointers-and-integers>
[INFO] [stdout]     = help: for more information about exposed provenance, see <https://doc.rust-lang.org/std/ptr/index.html#exposed-provenance>
[INFO] [stdout] help: use `std::ptr::with_exposed_provenance_mut` instead to use a previously exposed provenance
[INFO] [stdout]     |
[INFO] [stdout] 298 -         unsafe { std::mem::transmute(val) }
[INFO] [stdout] 298 +         unsafe { &mut *std::ptr::with_exposed_provenance_mut::<c_void>(val) }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.71s
[INFO] running `Command { std: "docker" "inspect" "bfb4e3d5b9a909cec6701aa07168f866e623f460f74bfd51d38b2855aaa355fa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bfb4e3d5b9a909cec6701aa07168f866e623f460f74bfd51d38b2855aaa355fa", kill_on_drop: false }`
[INFO] [stdout] bfb4e3d5b9a909cec6701aa07168f866e623f460f74bfd51d38b2855aaa355fa
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] b0c060ab6916fa0e84e148b586574948b65b66f18a00ed039944bd9ed50df8b1
[INFO] running `Command { std: "docker" "start" "-a" "b0c060ab6916fa0e84e148b586574948b65b66f18a00ed039944bd9ed50df8b1", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: version requirement `0.5.2+5.3.0-patched` for dependency `jemalloc-sys` includes semver metadata which will be ignored, removing the metadata is recommended to avoid confusion
[INFO] [stderr] warning: `base-coroutine` (manifest) generated 1 warning
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]   --> src/id.rs:13:13
[INFO] [stderr]    |
[INFO] [stderr] 13 |             COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]    |
[INFO] [stderr]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stderr]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]   --> src/id.rs:14:13
[INFO] [stderr]    |
[INFO] [stderr] 14 |             SCHEDULER_ID.store(1, Ordering::SeqCst);
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]    |
[INFO] [stderr]  8 - static mut SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stderr]  8 + static SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]   --> src/id.rs:20:23
[INFO] [stderr]    |
[INFO] [stderr] 20 |             let val = COROUTINE_ID.fetch_add(1, Ordering::SeqCst);
[INFO] [stderr]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]    |
[INFO] [stderr]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stderr]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]   --> src/id.rs:22:17
[INFO] [stderr]    |
[INFO] [stderr] 22 |                 COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]    |
[INFO] [stderr]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stderr]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]   --> src/id.rs:30:23
[INFO] [stderr]    |
[INFO] [stderr] 30 |             let val = SCHEDULER_ID.fetch_add(1, Ordering::SeqCst);
[INFO] [stderr]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]    |
[INFO] [stderr]  8 - static mut SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stderr]  8 + static SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]   --> src/id.rs:32:17
[INFO] [stderr]    |
[INFO] [stderr] 32 |                 COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]    |
[INFO] [stderr]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stderr]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` fn uses type `CoroutineResult<Yield, Return>`, which is not FFI-safe
[INFO] [stderr]    --> src/coroutine.rs:163:29
[INFO] [stderr]     |
[INFO] [stderr] 163 |     marker: PhantomData<&'a extern "C" fn(Param) -> CoroutineResult<Yield, Return>>,
[INFO] [stderr]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]     |
[INFO] [stderr]     = help: consider adding a `#[repr(C)]`, `#[repr(transparent)]`, or integer `#[repr(...)]` attribute to this enum
[INFO] [stderr]     = note: enum has no representation hint
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]    --> src/coroutine.rs:114:1
[INFO] [stderr]     |
[INFO] [stderr] 114 | pub enum CoroutineResult<Yield, Return> {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     = note: `#[warn(improper_ctypes_definitions)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]   --> src/work_steal.rs:14:14
[INFO] [stderr]    |
[INFO] [stderr] 14 |     unsafe { INSTANCE.local_queue() }
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]    |
[INFO] [stderr] 11 - static mut INSTANCE: Lazy<Queue> = Lazy::new(Queue::default);
[INFO] [stderr] 11 + static INSTANCE: Lazy<Queue> = Lazy::new(Queue::default);
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]   --> src/work_steal.rs:33:13
[INFO] [stderr]    |
[INFO] [stderr] 33 | /             LOCAL_QUEUES.get_or_init(|| {
[INFO] [stderr] 34 | |                 (0..local_queues)
[INFO] [stderr] 35 | |                     .map(|_| WorkStealQueue::new(local_capacity))
[INFO] [stderr] 36 | |                     .collect()
[INFO] [stderr] 37 | |             });
[INFO] [stderr]    | |______________^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]    |
[INFO] [stderr] 22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stderr] 22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]   --> src/work_steal.rs:52:18
[INFO] [stderr]    |
[INFO] [stderr] 52 |         unsafe { GLOBAL_QUEUE.push(ptr).unwrap() }
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]    |
[INFO] [stderr] 19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stderr] 19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]   --> src/work_steal.rs:61:13
[INFO] [stderr]    |
[INFO] [stderr] 61 | /             LOCAL_QUEUES
[INFO] [stderr] 62 | |                 .get_mut()
[INFO] [stderr]    | |__________________________^ mutable reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]    |
[INFO] [stderr] 22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stderr] 22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]    --> src/work_steal.rs:132:29
[INFO] [stderr]     |
[INFO] [stderr] 132 |                     let _ = GLOBAL_QUEUE.push(half.pop().unwrap());
[INFO] [stderr]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stderr]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]    --> src/work_steal.rs:134:17
[INFO] [stderr]     |
[INFO] [stderr] 134 |                 GLOBAL_QUEUE.push(item).map_err(|e| match e {
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stderr]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]    --> src/work_steal.rs:183:46
[INFO] [stderr]     |
[INFO] [stderr] 183 |                     if let Ok(popped_item) = GLOBAL_QUEUE.pop() {
[INFO] [stderr]     |                                              ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stderr]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/work_steal.rs:190:36
[INFO] [stderr]     |
[INFO] [stderr] 190 |                 let local_queues = LOCAL_QUEUES.get_mut().unwrap();
[INFO] [stderr]     |                                    ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stderr]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]    --> src/work_steal.rs:214:19
[INFO] [stderr]     |
[INFO] [stderr] 214 |             match GLOBAL_QUEUE.pop() {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stderr]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]    --> src/work_steal.rs:248:13
[INFO] [stderr]     |
[INFO] [stderr] 248 | /             GLOBAL_LOCK
[INFO] [stderr] 249 | |                 .compare_exchange(false, true, Ordering::Relaxed, Ordering::Relaxed)
[INFO] [stderr]     | |____________________________________________________________________________________^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  17 - static mut GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stderr]  17 + static GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]    --> src/work_steal.rs:258:23
[INFO] [stderr]     |
[INFO] [stderr] 258 |                 match GLOBAL_QUEUE.pop() {
[INFO] [stderr]     |                       ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stderr]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]    --> src/work_steal.rs:263:13
[INFO] [stderr]     |
[INFO] [stderr] 263 |             GLOBAL_LOCK.store(false, Ordering::Relaxed);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  17 - static mut GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stderr]  17 + static GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]   --> src/scheduler.rs:98:26
[INFO] [stderr]    |
[INFO] [stderr] 98 |             || unsafe { !SUSPEND_TABLE.is_empty() || !SYSTEM_CALL_TABLE.is_empty() }
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]    |
[INFO] [stderr] 24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stderr] 24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]   --> src/scheduler.rs:98:55
[INFO] [stderr]    |
[INFO] [stderr] 98 |             || unsafe { !SUSPEND_TABLE.is_empty() || !SYSTEM_CALL_TABLE.is_empty() }
[INFO] [stderr]    |                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]    |
[INFO] [stderr] 22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stderr] 22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/scheduler.rs:169:33
[INFO] [stderr]     |
[INFO] [stderr] 169 | / ...                   SUSPEND_TABLE.insert_raw(
[INFO] [stderr] 170 | | ...                       timer_utils::add_timeout_time(delay_time),
[INFO] [stderr] 171 | | ...                       coroutine as *mut _ as *mut c_void,
[INFO] [stderr] 172 | | ...                   );
[INFO] [stderr]     | |_______________________^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stderr]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/scheduler.rs:183:34
[INFO] [stderr]     |
[INFO] [stderr] 183 |                         unsafe { SYSTEM_CALL_TABLE.insert(coroutine.get_id(), coroutine) };
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stderr]  22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]    --> src/scheduler.rs:201:25
[INFO] [stderr]     |
[INFO] [stderr] 201 |             for _ in 0..SUSPEND_TABLE.len() {
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stderr]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]    --> src/scheduler.rs:202:38
[INFO] [stderr]     |
[INFO] [stderr] 202 |                 if let Some(entry) = SUSPEND_TABLE.front() {
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stderr]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/scheduler.rs:208:46
[INFO] [stderr]     |
[INFO] [stderr] 208 |                     if let Some(mut entry) = SUSPEND_TABLE.pop_front() {
[INFO] [stderr]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stderr]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/scheduler.rs:238:27
[INFO] [stderr]     |
[INFO] [stderr] 238 |         if let Some(co) = SYSTEM_CALL_TABLE.remove(&co_id) {
[INFO] [stderr]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stderr]  22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: direct cast of function item into an integer
[INFO] [stderr]   --> src/monitor.rs:41:47
[INFO] [stderr]    |
[INFO] [stderr] 41 |             act.sa_sigaction = sigurg_handler as libc::sighandler_t;
[INFO] [stderr]    |                                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stderr] help: first cast to a pointer `as *const ()`
[INFO] [stderr]    |
[INFO] [stderr] 41 |             act.sa_sigaction = sigurg_handler as *const () as libc::sighandler_t;
[INFO] [stderr]    |                                               ++++++++++++
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]   --> src/monitor.rs:64:18
[INFO] [stderr]    |
[INFO] [stderr] 64 |         unsafe { &mut GLOBAL }
[INFO] [stderr]    |                  ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: use `&raw mut` instead to create a raw pointer
[INFO] [stderr]    |
[INFO] [stderr] 64 |         unsafe { &raw mut GLOBAL }
[INFO] [stderr]    |                   +++
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]    |
[INFO] [stderr] 11 - static mut GLOBAL: Lazy<Monitor> = Lazy::new(Monitor::new);
[INFO] [stderr] 11 + static GLOBAL: Lazy<Monitor> = Lazy::new(Monitor::new);
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/monitor.rs:133:41
[INFO] [stderr]     |
[INFO] [stderr] 133 |             if let Some(local_queues) = LOCAL_QUEUES.get_mut() {
[INFO] [stderr]     |                                         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]    --> src/work_steal.rs:22:19
[INFO] [stderr]     |
[INFO] [stderr]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stderr]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]    --> src/monitor.rs:137:21
[INFO] [stderr]     |
[INFO] [stderr] 137 |                 if !GLOBAL_QUEUE.is_empty() {
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]    --> src/work_steal.rs:19:19
[INFO] [stderr]     |
[INFO] [stderr]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stderr]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/monitor.rs:166:41
[INFO] [stderr]     |
[INFO] [stderr] 166 |                         let idle_less = LOCAL_QUEUES.get_mut().unwrap().get_mut(min.1).unwrap();
[INFO] [stderr]     |                                         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]    --> src/work_steal.rs:22:19
[INFO] [stderr]     |
[INFO] [stderr]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stderr]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:111:25
[INFO] [stderr]     |
[INFO] [stderr] 111 |             let index = INDEX.fetch_add(1, Ordering::SeqCst);
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  85 - static mut INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stderr]  85 + static INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:113:17
[INFO] [stderr]     |
[INFO] [stderr] 113 |                 INDEX.store(1, Ordering::SeqCst);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  85 - static mut INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stderr]  85 + static INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:115:13
[INFO] [stderr]     |
[INFO] [stderr] 115 |             EVENT_LOOPS.get_mut(index % num_cpus::get()).unwrap()
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  87 - static mut EVENT_LOOPS: Lazy<Box<[EventLoop]>> = Lazy::new(|| {
[INFO] [stderr]  87 + static EVENT_LOOPS: Lazy<Box<[EventLoop]>> = Lazy::new(|| {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:166:13
[INFO] [stderr]     |
[INFO] [stderr] 166 |             READABLE_RECORDS.remove(&fd);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:167:13
[INFO] [stderr]     |
[INFO] [stderr] 167 |             READABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stderr]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:168:13
[INFO] [stderr]     |
[INFO] [stderr] 168 |             WRITABLE_RECORDS.remove(&fd);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:169:13
[INFO] [stderr]     |
[INFO] [stderr] 169 |             WRITABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stderr]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:182:16
[INFO] [stderr]     |
[INFO] [stderr] 182 |             if READABLE_RECORDS.contains(&fd) {
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:183:20
[INFO] [stderr]     |
[INFO] [stderr] 183 |                 if WRITABLE_RECORDS.contains(&fd) {
[INFO] [stderr]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:187:25
[INFO] [stderr]     |
[INFO] [stderr] 187 |                         WRITABLE_TOKEN_RECORDS.remove(&fd).unwrap_or(0),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stderr]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:190:21
[INFO] [stderr]     |
[INFO] [stderr] 190 |                     READABLE_RECORDS.remove(&fd);
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:207:16
[INFO] [stderr]     |
[INFO] [stderr] 207 |             if WRITABLE_RECORDS.contains(&fd) {
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:208:20
[INFO] [stderr]     |
[INFO] [stderr] 208 |                 if READABLE_RECORDS.contains(&fd) {
[INFO] [stderr]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:212:25
[INFO] [stderr]     |
[INFO] [stderr] 212 |                         READABLE_TOKEN_RECORDS.remove(&fd).unwrap_or(0),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stderr]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:215:21
[INFO] [stderr]     |
[INFO] [stderr] 215 |                     WRITABLE_RECORDS.remove(&fd);
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:236:13
[INFO] [stderr]     |
[INFO] [stderr] 236 |             READABLE_RECORDS.insert(fd);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:237:13
[INFO] [stderr]     |
[INFO] [stderr] 237 |             READABLE_TOKEN_RECORDS.insert(fd, token);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stderr]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:246:13
[INFO] [stderr]     |
[INFO] [stderr] 246 |             WRITABLE_RECORDS.insert(fd);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:247:13
[INFO] [stderr]     |
[INFO] [stderr] 247 |             WRITABLE_TOKEN_RECORDS.insert(fd, token);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stderr]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:263:21
[INFO] [stderr]     |
[INFO] [stderr] 263 |                     READABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stderr]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]    --> src/event_loop/mod.rs:266:21
[INFO] [stderr]     |
[INFO] [stderr] 266 |                     WRITABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stderr]     |
[INFO] [stderr]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stderr]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: transmuting an integer to a pointer creates a pointer without provenance
[INFO] [stderr]    --> src/scheduler.rs:260:18
[INFO] [stderr]     |
[INFO] [stderr] 260 |         unsafe { std::mem::transmute(10usize) }
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this is dangerous because dereferencing the resulting pointer is undefined behavior
[INFO] [stderr]     = note: exposed provenance semantics can be used to create a pointer based on some previously exposed provenance
[INFO] [stderr]     = help: if you truly mean to create a pointer without provenance, use `std::ptr::without_provenance_mut`
[INFO] [stderr]     = help: for more information about transmute, see <https://doc.rust-lang.org/std/mem/fn.transmute.html#transmutation-between-pointers-and-integers>
[INFO] [stderr]     = help: for more information about exposed provenance, see <https://doc.rust-lang.org/std/ptr/index.html#exposed-provenance>
[INFO] [stderr]     = note: `#[warn(integer_to_ptr_transmutes)]` on by default
[INFO] [stderr] help: use `std::ptr::with_exposed_provenance_mut` instead to use a previously exposed provenance
[INFO] [stderr]     |
[INFO] [stderr] 260 -         unsafe { std::mem::transmute(10usize) }
[INFO] [stderr] 260 +         unsafe { &mut *std::ptr::with_exposed_provenance_mut::<c_void>(10usize) }
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: direct cast of function item into an integer
[INFO] [stderr]    --> src/monitor.rs:198:41
[INFO] [stderr]     |
[INFO] [stderr] 198 |         register_handler(sigurg_handler as libc::sighandler_t);
[INFO] [stderr]     |                                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: first cast to a pointer `as *const ()`
[INFO] [stderr]     |
[INFO] [stderr] 198 |         register_handler(sigurg_handler as *const () as libc::sighandler_t);
[INFO] [stderr]     |                                         ++++++++++++
[INFO] [stderr] 
[INFO] [stderr] warning: direct cast of function item into an integer
[INFO] [stderr]    --> src/monitor.rs:210:41
[INFO] [stderr]     |
[INFO] [stderr] 210 |         register_handler(sigurg_handler as libc::sighandler_t);
[INFO] [stderr]     |                                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: first cast to a pointer `as *const ()`
[INFO] [stderr]     |
[INFO] [stderr] 210 |         register_handler(sigurg_handler as *const () as libc::sighandler_t);
[INFO] [stderr]     |                                         ++++++++++++
[INFO] [stderr] 
[INFO] [stderr] warning: direct cast of function item into an integer
[INFO] [stderr]    --> src/monitor.rs:220:41
[INFO] [stderr]     |
[INFO] [stderr] 220 |         register_handler(sigurg_handler as libc::sighandler_t);
[INFO] [stderr]     |                                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: first cast to a pointer `as *const ()`
[INFO] [stderr]     |
[INFO] [stderr] 220 |         register_handler(sigurg_handler as *const () as libc::sighandler_t);
[INFO] [stderr]     |                                         ++++++++++++
[INFO] [stderr] 
[INFO] [stderr] warning: transmuting an integer to a pointer creates a pointer without provenance
[INFO] [stderr]    --> src/event_loop/mod.rs:298:18
[INFO] [stderr]     |
[INFO] [stderr] 298 |         unsafe { std::mem::transmute(val) }
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this is dangerous because dereferencing the resulting pointer is undefined behavior
[INFO] [stderr]     = note: exposed provenance semantics can be used to create a pointer based on some previously exposed provenance
[INFO] [stderr]     = help: if you truly mean to create a pointer without provenance, use `std::ptr::without_provenance_mut`
[INFO] [stderr]     = help: for more information about transmute, see <https://doc.rust-lang.org/std/mem/fn.transmute.html#transmutation-between-pointers-and-integers>
[INFO] [stderr]     = help: for more information about exposed provenance, see <https://doc.rust-lang.org/std/ptr/index.html#exposed-provenance>
[INFO] [stderr] help: use `std::ptr::with_exposed_provenance_mut` instead to use a previously exposed provenance
[INFO] [stderr]     |
[INFO] [stderr] 298 -         unsafe { std::mem::transmute(val) }
[INFO] [stderr] 298 +         unsafe { &mut *std::ptr::with_exposed_provenance_mut::<c_void>(val) }
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `base-coroutine` (lib) generated 53 warnings (run `cargo fix --lib -p base-coroutine` to apply 1 suggestion)
[INFO] [stderr] warning: `base-coroutine` (lib test) generated 58 warnings (53 duplicates) (run `cargo fix --lib -p base-coroutine --tests` to apply 5 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.12s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/base_coroutine-33a54c9961cb6f93)
[INFO] [stdout] 
[INFO] [stdout] running 20 tests
[INFO] [stdout] test context::tests::type_sizes ... ok
[INFO] [stdout] test context::tests::number_generator ... ok
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/debug/deps/base_coroutine-33a54c9961cb6f93` (signal: 11, SIGSEGV: invalid memory reference)
[INFO] running `Command { std: "docker" "inspect" "b0c060ab6916fa0e84e148b586574948b65b66f18a00ed039944bd9ed50df8b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b0c060ab6916fa0e84e148b586574948b65b66f18a00ed039944bd9ed50df8b1", kill_on_drop: false }`
[INFO] [stdout] b0c060ab6916fa0e84e148b586574948b65b66f18a00ed039944bd9ed50df8b1
